Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit b1bdb46b9930cfb26c065b3beee0634fc7e1cc25


Parents : 859f76d
Author : Mark Qvist <bc7291552be7a58f361522990465165c>
Date : 2026-05-04T23:35:23+02:00

Fixed file saved notice sometimes disappearing immediately after file download completes

Changes

1 files changed, 15 insertions(+), 9 deletions(-)


Diff

diff --git a/nomadnet/ui/textui/Browser.py b/nomadnet/ui/textui/Browser.py
index a13f3e5..f4785bc 100644
--- a/nomadnet/ui/textui/Browser.py
+++ b/nomadnet/ui/textui/Browser.py
@@ -105,6 +105,8 @@ class Browser:
self.page_background_color = None
self.page_foreground_color = None
self.saved_file_name = None
+ self.file_saved_at = 0
+ self.file_save_notice_timeout = 3
self.page_data = None
self.displayed_page_data = None
self.auth_identity = auth_identity
@@ -162,6 +164,7 @@ class Browser:
def marked_link_job(self, sender, event):
link_target = self.link_target
+ can_display = time.time() > self.file_saved_at + self.file_save_notice_timeout
if link_target == None:
if self.link_status_showing:
@@ -172,14 +175,15 @@ class Browser:
style_name = make_style(default_state(fg=self.page_foreground_color, bg=self.page_background_color))
self.browser_footer.set_attr_map({None: style_name})
else:
- self.link_status_showing = True
- lt_str = str(link_target)
- if len(lt_str) > 80: lt_str = lt_str[:80]+"…"
- self.browser_footer = urwid.AttrMap(urwid.Pile([urwid.Divider(self.g["divider1"]), urwid.Text("Link to: "+lt_str)]), "browser_controls")
- self.frame.contents["footer"] = (self.browser_footer, self.frame.options())
- if self.page_background_color != None or self.page_foreground_color != None:
- style_name = make_style(default_state(fg=self.page_foreground_color, bg=self.page_background_color))
- self.browser_footer.set_attr_map({None: style_name})
+ if can_display:
+ self.link_status_showing = True
+ lt_str = str(link_target)
+ if len(lt_str) > 80: lt_str = lt_str[:80]+"…"
+ self.browser_footer = urwid.AttrMap(urwid.Pile([urwid.Divider(self.g["divider1"]), urwid.Text("Link to: "+lt_str)]), "browser_controls")
+ self.frame.contents["footer"] = (self.browser_footer, self.frame.options())
+ if self.page_background_color != None or self.page_foreground_color != None:
+ style_name = make_style(default_state(fg=self.page_foreground_color, bg=self.page_background_color))
+ self.browser_footer.set_attr_map({None: style_name})
def expand_shorthands(self, destination_type):
if destination_type == "nnn":
@@ -1433,6 +1437,7 @@ class Browser:
shutil.move(file_handle.name, file_destination)
self.saved_file_name = file_destination.replace(self.app.downloads_path+"/", "", 1)
+ self.file_saved_at = time.time()
else:
file_name = request_receipt.response[0]
@@ -1458,6 +1463,7 @@ class Browser:
self.previous_progress = 0
self.update_display()
+
except Exception as e:
RNS.log("An error occurred while handling file response. The contained exception was: "+str(e), RNS.LOG_ERROR)
@@ -1521,7 +1527,7 @@ class Browser:
now = time.time()
if self.progress_updated_at == None: self.progress_updated_at = now
- if now > self.progress_updated_at+1:
+ if now > self.progress_updated_at+0.5:
td = now - self.progress_updated_at
pd = self.response_progress - self.previous_progress
bd = pd*self.response_transfer_size


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────